import sys
import os
from pymongo import MongoClient, ASCENDING
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

# 获取MongoDB连接URI
mongo_uri = os.getenv('MONGO_URI', 'mongodb://localhost:27017/medical_system')

def main():
    """初始化数据库"""
    print("连接到数据库...")
    client = MongoClient(mongo_uri)
    db = client.medical_system
    
    # 删除错误的drugs.code索引
    try:
        if 'code_1' in db.drugs.index_information():
            print("删除drugs集合上的code索引...")
            db.drugs.drop_index('code_1')
            print("成功删除索引")
        else:
            print("drugs集合上没有code索引，无需删除")
            
        # 确保只有drugCode索引
        if 'drugCode_1' not in db.drugs.index_information():
            print("创建drugs集合上的drugCode索引...")
            db.drugs.create_index([('drugCode', ASCENDING)], unique=True)
            print("成功创建索引")
        else:
            print("drugCode索引已存在")
    except Exception as e:
        print(f"处理索引时出错: {e}")
    
    # 导入和执行初始化数据库函数
    from app.init_db import init_database
    print("初始化数据库...")
    init_database(mongo_uri)
    
    print("数据库初始化完成")
    client.close()

if __name__ == "__main__":
    main() 